﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace Myotragus.Data.Criteria
{
	public interface IPagedQuery<TEntity> : IQuery<TEntity>
	{
		IPagedQuery<TEntity> Skip(int firstResult);

		IPagedQuery<TEntity> Take(int maxResults);

		IOrderedQuery<TEntity> OrderBy(string column);

		IOrderedQuery<TEntity> OrderBy(Expression<Func<TEntity, object>> column);

		IQuery<TEntity> SetOrderByExpression(IEnumerable<string> expressions);

		IQuery<TEntity> SetOrderByExpression(params string[] expressions);
	}
}